/* 
 * Algoritmos y estructura de datos
 * Autor: Gustavo Sanchez Cardona
 * Carnet: 10313
 * Seccion: 
 */
/*
 * Descripcion: Clase principal del radio simulado, se encarga de recibir las entradas de teclado del usuario, desplegar el menu y crear los objetos radio.

 */
import java.util.*;
public class Menu {
	public static void main(String[] args){
		Radio aparato;
		int opcion=0;
		int temporal=0;
		boolean encendido=false;
		
		aparato=new Radio();
		do{
			
			System.out.println(aparato.toString());
			System.out.println("\n |                         Menu                    |");
			System.out.println("\n |              1. Encender/Apagar la radio        |");
			System.out.println("\n |              2.Cambiar entre AM/FM              |");
			System.out.println("\n |              3.Siguiente estacion               |");
			System.out.println("\n |              4.Estacion anterior                |");
			System.out.println("\n |              5.Guardar estacion                 |");
			System.out.println("\n |              6.Regresar a estacion guardada     |");
			System.out.println("\n|               7.Salir                            |");
			opcion=entrada("\n|     Ingrese el numero de la opcion que desea       |", 7, 1);
			if(opcion==1){
				encendido=aparato.power();
			}
			else
			{
				if(encendido){
					switch (opcion){
						case 2:
							aparato.cambio();
						break;
						case 3:
							aparato.fw();
						break;
						case 4:
							aparato.bw();
						break;
						case 5:
							temporal=entrada("\n Ingrese la casilla donde desea guardar la estacion actual(1-12)", 12, 1);	
								aparato.store(temporal);
						break;
						case 6:
							temporal=entrada("\n Ingrese la casilla de memoria donde se encuentra la estacion deseada(1-12)", 12, 1);
							aparato.select(temporal);
						break;	
					}
				}
				else
				{
					if(opcion!=7){
						System.out.println("\n El radio se encuentra apagado");
					}
				}
			}
		}while(opcion!=7);
	}
	public static int entrada(String texto, int max, int min){
		Scanner readln=new Scanner(System.in);
		int x=0;
		do{
			try{
				System.out.println("\n Presione enter para continuar ");
				readln.nextLine();
				System.out.println(texto);
				x=readln.nextInt();
				
				
				if((x>max)||(x<min))
					throw new InputMismatchException();
			}
			catch(InputMismatchException exception){
				System.out.println("\n Error numero invalido \n");
				x=0;
				
			}
		}while(x==0);
		return x;
			
	}

}
